import axios from 'axios'
import { Message } from 'element-ui'
import store from '@/store'
import router from '@/router'
// import { getToken } from '@/utils/auth'

// create an axios instance (创建一个axios实例)
const request = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: 5000 // request timeout
})

// 请求拦截器
request.interceptors.request.use((config) => {
  // 是否有token，有token就将token放到请求头
  const token = store.state.user.token
  if (token) {
    config.headers.Authorization = token
    return config
  }
  return config
})

// 响应拦截器
request.interceptors.response.use((res) => {
  // 接口响应成功的回调
  console.log(res)
  const meta = res.data.meta
  // 判断是否请求成功
  if (meta.status === 200 || meta.status === 201) {
    return res.data.data
  } else {
    Message.error(meta.msg)
    if (meta.msg === '无效token') {
      store.commit('user/logout')
      router.push('/login')
    }
    return Promise.reject(new Error(meta.msg))
  }
}, (err) => {
  // 接口响应失败的回调
  return Promise.reject(err)
})

export default request
